Skip to main content

Python Set

banner-python

🐍 Let's Get Set-ting in Python! πŸŽ‰β€‹

Sets in Python are like that exclusive club where no duplicates are allowed, everyone is unindexed, and things are delightfully unordered. In this guide, we’re going to laugh, learn, and become set-it-and-forget-it pros!


1. 🧠 What is a Set?​

Imagine a magical bag that:

  • Randomly stores unique, hashable items πŸ§™
  • Doesn’t believe in order or indexing πŸš«πŸ“¦
  • Is defined using curly braces {} or the set() constructor

Example? Absolutely!

# Curly curly, quite swirly
nameSet = {"alex", "brian", "charles"}

# The more verbose cousin
nameSet = set(("alex", "brian", "charles"))

πŸ” Under the hood, sets are powered by dictionaries (yeah, that nerdy kid with superpowers from next door).

⚠️ No mutables allowed – lists and dictionaries are bouncers-denied. But tuples and immutable sets? Come on in!


2. πŸ‘€ Getting Values from a Set​

2.1. πŸŒ€ Loop-de-loop with for​

No indexes, no slices, just pure looping love:

nameSet = {"alex", "brian", "charles"}
for name in nameSet:
print(name)

πŸ“¦ Output:

alex
brian
charles

2.2. πŸ•΅οΈ Check Membership with in​

nameSet = {"alex", "brian", "charles"}

print("brian" in nameSet)
print("david" in nameSet)

πŸ” Output:

True
False

3. βž• Adding Items Like a Pro​

Need to add more people to your no-duplicate party?

  • add() β†’ adds one item
  • update() β†’ adds many
nameSet = {"alex", "brian", "charles"}

nameSet.add("david")
print(nameSet)

nameSet.update(["evan", "frank", "george"])
print(nameSet)

πŸŽ‰ Output:

{'alex', 'charles', 'brian', 'david'}
{'brian', 'alex', 'david', 'frank', 'george', 'charles', 'evan'}

4. βž– Removing Items Like a Ninja​

Choose your weapon wisely​

  • remove() – throws tantrum if item doesn’t exist ❌
  • discard() – chill and quiet even if item is missing 😌
  • pop() – removes and returns a surprise gift 🎁
  • clear() – wipes the slate clean 🧽
  • del – blows it into oblivion πŸ’₯
nameSet = {"alex", "brian", "charles", "evan", "frank"}

nameSet.remove("frank")
print(nameSet)

nameSet.discard("evan")
print(nameSet)

name = nameSet.pop()
print(name)
print(nameSet)

nameSet.clear()
print(nameSet)

del nameSet
print(nameSet)

πŸ’£ Output:

{'evan', 'alex', 'charles', 'brian'}
{'alex', 'charles', 'brian'}
alex
{'charles', 'brian'}
set()
Traceback (most recent call last):
File "<string>", line 17, in <module>
NameError: name 'nameSet' is not defined

5. 🫱 Set Union – Combining Superpowers​

Want to merge two sets into a mega-set?

nameSet1 = {"alex", "brian", "charles"}
nameSet2 = {"evan", "frank"}

setUnion = nameSet1.union(nameSet2)
print(setUnion)

🧬 Output:

{'charles', 'frank', 'alex', 'evan', 'brian'}

6. 🧰 Python Set Toolbox – Methods You Gotta Know​

Let’s tour the Set theme park 🎒:

6.1. add() – Add a Friend​

nameSet = {"alex", "brian", "charles"}
nameSet.add("david")
print(nameSet)

πŸ“¦ Output: {'alex', 'brian', 'charles', 'david'}


6.2. clear() – Clean Slate​

nameSet = {"alex", "brian", "charles"}
nameSet.clear()
print(nameSet)

🧽 Output: set()


6.3. copy() – Clone Wars​

nameSet = {"alex", "brian", "charles"}
copySet = nameSet.copy()
print(copySet)

πŸͺž Output: {'alex', 'brian', 'charles'}


6.4. difference() – What’s Missing?​

nameSet1 = {"alex", "brian", "charles"}
nameSet2 = {"alex", "brian", "david"}
diffSet = nameSet1.difference(nameSet2)
print(diffSet)

❓ Output: {'charles'}


6.5. difference_update() – Get Rid of the Overlap​

nameSet1 = {"alex", "brian", "charles"}
nameSet2 = {"alex", "brian", "david"}
nameSet1.difference_update(nameSet2)
print(nameSet1)

🧹 Output: {'charles'}


6.6. discard() – Politely Say Goodbye​

nameSet = {"alex", "brian", "charles"}
nameSet.discard("charles")
print(nameSet)

πŸšͺ Output: {'alex', 'brian'}


6.7. intersection() – What Do We Have in Common?​

nameSet1 = {"alex", "brian", "charles"}
nameSet2 = {"alex", "brian", "david"}
diffSet = nameSet1.intersection(nameSet2)
print(diffSet)

🎯 Output: {'alex', 'brian'}


6.8. intersection_update() – Keep Only What’s Shared​

nameSet1 = {"alex", "brian", "charles"}
nameSet2 = {"alex", "brian", "david"}
nameSet1.intersection_update(nameSet2)
print(nameSet1)

πŸŽ› Output: {'alex', 'brian'}


6.9. isdisjoint() – Are We Totally Different?​

nameSet1 = {"alex", "brian", "charles"}
nameSet2 = {"alex", "brian", "david"}
result = nameSet1.isdisjoint(nameSet2)
print(result)

πŸ™… Output: False


6.10. issubset() – Is This Set Part of the Cool Gang?​

nameSet1 = {"alex", "brian"}
nameSet2 = {"alex", "brian", "charles"}
result = nameSet1.issubset(nameSet2)
print(result)

πŸ‘¨β€πŸ‘¦ Output: True


6.11. issuperset() – Am I the Boss Here?​

nameSet1 = {"alex", "brian"}
nameSet2 = {"alex", "brian", "charles"}
result = nameSet1.issuperset(nameSet2)
print(result)

πŸ“‰ Output: False


6.12. pop() – Surprise! You’re Gone​

nameSet = {"alex", "brian", "charles"}
print(nameSet.pop())
print(nameSet)

🎁 Output:

alex
{'charles', 'brian'}

6.13. remove() – Bye, You​

nameSet = {"alex", "brian", "charles"}
nameSet.remove("alex")
print(nameSet)

πŸ—‘ Output: {'charles', 'brian'}


6.14. symmetric_difference() – What’s Not in Both?​

nameSet1 = {"alex", "brian", "charles"}
nameSet2 = {"alex", "brian", "david"}
result = nameSet1.symmetric_difference(nameSet2)
print(result)

πŸ”„ Output: {'david', 'charles'}


6.15. symmetric_difference_update() – Forget the Common Stuff​

nameSet1 = {"alex", "brian", "charles"}
nameSet2 = {"alex", "brian", "david"}
nameSet1.symmetric_difference_update(nameSet2)
print(nameSet1)

🧠 Output: {'david', 'charles'}


6.16. union() – Combine Like Superheroes​

nameSet1 = {"alex", "brian", "charles"}
nameSet2 = {"alex", "brian", "david"}
result = nameSet1.union(nameSet2)
print(result)

🦸 Output: {'alex', 'brian', 'david', 'charles'}


6.17. update() – I’ll Take It All​

nameSet1 = {"alex", "brian", "charles"}
nameSet2 = {"alex", "brian", "david"}
nameSet1.update(nameSet2)
print(nameSet1)

πŸ“ˆ Output: {'alex', 'brian', 'david', 'charles'}


πŸŽ“ Happy Learning, You Set Superstar! πŸ’«β€‹